class: inverse,left, middle background-image: url(background.png) background-size: cover <img src="data:image/png;base64,#LOGO_DIPLOMADO.png" width="500px"/> ##Módulo 2: Percepción remota, análisis masivo y Google Earth Engine. ### Pre-procesamiento satelital II Gabriel Castro mail gabriel.castro.b@pucv.cl</a><br> .large[<b><a href="https://www.pucv.cl/uuaa/site/edic/base/port/labgrs.html">LabGRS</a> | Octubre 2024</b>] <br> --- class: center,middle background-image: url(data:image/png;base64,#labgrs_logo.png) background-size: 35% --- ## Contenidos .pull-left[ - Imagenes comerciales: Planet Scope Skysat. (✔) - Combinaciones de bandas. (✔) - Calibración radiométrica. (TOA radianza - TOA reflectancia) (✔) - Corrección atmosférica. (✔) - Filtros de calidad de la información satelital. - Compensación topográfica por iluminación. ] .pull-right[ <img src="data:image/png;base64,#https://raw.githubusercontent.com/allisonhorst/stats-illustrations/main/rstats-artwork/r_rollercoaster.png" width="650px"/> © Allison Horst ] --- ### Filtros de calidad de la información: Quality assessment. #### - [**Manuales de uso C02 LVL 2 Landsat 8-9**](https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/LSDS-1619_Landsat8-9-Collection2-Level2-Science-Product-Guide-v6.pdf) <center> <img src="data:image/png;base64,#QA_BAND.PNG" alt="drawing" width="950" height="500"/> <center> --- ### Filtros de calidad de la información: Quality assessment. <center> <img src="data:image/png;base64,#QA_VALUE.PNG" alt="drawing" width="700" height="500"/> <center> --- ```r # 1.- Lectura de datos ---- # escalado valores de reflectancia superficial: L8_SR <- rast("L8_Valparaiso_C02_LVL2/L8_SR_VALPARAISO_C02.tif") * 0.0000275 + -0.2 QA <- rast("L8_Valparaiso_C02_LVL2/QA_PIXEL_BAND_L8_SR_VALPARAISO_C02.tif") # banda quality ``` <center> <img src="data:image/png;base64,#L8_SR.PNG" alt="drawing" width="600" height="500"/> <center> --- ### Filtros de calidad de la información: Quality assessment. ```r ### Filtro Qa por valores del pixel --------- # QA nube high --- QA_nube_high <- QA QA_nube_high[QA_nube_high != 22280] <- NA plot(QA_nube_high, add=T, col = "red") #QA nube mid --- QA_snow_high <- QA QA_snow_high[QA_snow_high != 30048] <- NA plot(QA_snow_high,add = T ,col = "yellow") #---------------------------- # Crear objeto con los Qa que quiero eliminar: qa_list <- c(22280,30048) QA_remove <- QA QA_remove[QA_remove != qa_list] <- NA plot(QA_remove) QA_mask_L8 <- L8_SR QA_mask_L8[QA_remove == qa_list] <- NA plotRGB(QA_mask_L8, r = 4, g= 3, b= 2, stretch = "hist") writeRaster(QA_mask_L8, filename = "QA_MASK_L8_SR.tif", overwrite = T) ``` --- ### Filtros de calidad de la información: Quality assessment. <center> <img src="data:image/png;base64,#QA_NOQA.PNG" alt="drawing" width="1000" height="550"/> <center> --- ### Compensación topográfica de la ilumiación <center> <img src="data:image/png;base64,#compo_topo.PNG" alt="drawing" width="1000" height="500"/> <center> --- ### Compensación topográfica de la ilumiación <center> <img src="data:image/png;base64,#solarAngles.PNG" alt="drawing" width="900" height="500"/> <center> --- ### Compensación topográfica de la ilumiación .pull-left[ Compensa la energÃa electromagnética que es reflejada por superficies irregulares (topografÃa) y es captada por el sensor. Las condiciones del terreno pueden generar grandes variaciones en la reflectancia de ciertos objetos en superficie. Contamos con una amplia cantidad de métodos. Sin embargo, <b> no existe un consenso general de cual método es mejor respecto a los demás. </b> El metodo a elegir dependera de **la rugosidad de la superficie** de estudio, los angulos del **azimuth y zenith del sol** y la temporada (estacion del año) en la cual nos encontremos trabajando. ] .pull-right[  ] --- ### Compensación topográfica de la ilumiación Dentro de los métodos de compensación basados en el uso de modelos de elevación digital, podemos encontrar 2 grandes grupos. 1. **Metodos Lambertianos** + Coseno (✔) + Coseno mejorado (✔) 2. **Metodos no lambertianos** + Minnaert + Minnaert slope + SCS <center> <img src="data:image/png;base64,#lambertiano.PNG" alt="drawing" width="700" height="250"/> <center> --- ### Compensación topográfica de la ilumiación Estos métodos se basan en la creación de un **modelo de iluminación** el cual considera la pendiente, orientación y posición del sol para determinar la condición de la luz en el área de interés. <left> <img src="data:image/png;base64,#il_formula.PNG" alt="drawing" width="650" height="300"/> <left> --- ### Compensación topográfica de la ilumiación ```r ## Compensación topográfica de la iluminación. poly <- vect("L8_Valparaiso_C02_LVL2/Compo_Topo_Ilum/poly.shp") L8_crop <- rast("L8_Valparaiso_C02_LVL2/Compo_Topo_Ilum/L8_SR_VALPARAISO_C02.tif") %>% crop(poly) %>% mask(poly) plotRGB(L8_crop, r = 4, g= 3, b= 2, stretch = "lin") DEM <- rast("L8_Valparaiso_C02_LVL2/Compo_Topo_Ilum/NASADEM_lNT2S_chile.tif") %>% crop(poly) %>% mask(poly) %>% resample(L8_crop) plot(DEM) ``` --- ### Compensación topográfica de la ilumiación <center> <img src="data:image/png;base64,#DEM_B2.PNG" alt="drawing" width="1000" height="450"/> <center> --- ### Compensación topográfica de la ilumiación #### Coseno Teillet et al. 1982 ```r ## Modelo de iluminación ---- sunazimuth <- 45.90472755*pi/180 sunzenit <- (90-44.39053871)*pi/180 slope <- terra::terrain(DEM, v = "slope", unit = "radians") aspect <- terra::terrain(DEM, v = "aspect", unit = "radians") IL <- cos(slope)*cos(sunzenit) + sin(slope)*sin(sunzenit)*cos(sunazimuth - aspect) plot(IL) ``` --- <center> <img src="data:image/png;base64,#IL.PNG" alt="drawing" width="860" height="610"/> <center> --- ### Compensación topográfica de la ilumiación #### Coseno Teillet et al. 1982 ```r ## Metodo coseno 1982 --- TopoCos <- L8_crop*(cos(sunzenit)/IL) ``` <left> <img src="data:image/png;base64,#coseno_formula.PNG" alt="drawing" width="600" height="300"/> <left> --- ### Compensación topográfica de la ilumiación <center> <img src="data:image/png;base64,#sr_coseno.PNG" alt="drawing" width="1000"height="500"/> <center> --- ### Compensación topográfica de la ilumiación #### Coseno mejorado Civco et al. 1989 Se presenta una mejora respecto al modelo de iluminación considerando el valor promedio para el area de estudio, esto permite generar una compensación mas homogenea. ```r ## COSENO TOPO CORRECTION ---- IL_mean <- terra::global(IL, "mean", na.rm = T) IL_mean <- IL_mean$mean TopoCos_imp <- L8_crop+(L8_crop*(IL_mean - IL)/ IL_mean) ``` <left> <img src="data:image/png;base64,#coseno_imp_formula.PNG" alt="drawing" width="500" height="280"/> <left> --- ### Comparación visual. <center> <img src="data:image/png;base64,#comparacion.PNG" alt="drawing" width="1200"height="460"/> <center> --- ### Comparación de reflectancias superficiales con los diferentes metodos. ```r # comparacion reflectancias -- il_df <- IL %>% as.data.frame(xy = T) px <- matrix(data = c(284018.749,6315530.393), nrow = 1, ncol = 2) reflectancia_l8_normal <- terra::extract(L8_crop, px) %>% t %>% as.data.frame() reflectancia_l8_normal <- tibble::rownames_to_column(reflectancia_l8_normal, "bands") reflectancia_cos <- terra::extract(TopoCos, px) %>% t %>% as.data.frame() reflectancia_cos_imp <- terra::extract(TopoCos_imp, px) %>% t %>% as.data.frame() df <- reflectancia_l8_normal %>% cbind(reflectancia_cos$V1, reflectancia_cos_imp$V1) names(df) <- c("bandas", "SR", "SR_coseno", "SR_coseno_imp") ``` --- ### Comparación de reflectancias superficiales con los diferentes metodos. ```r ## Plot simple de la reflectancia superficial corregida por 2 metodos --------- plot( x = df$SR, type = "l", xlab = "L08 bands (costal - SWIR2)", # tipo de grafico "l" lineas ylab = "surface reflectance (%)", col = "red", lwd = 2, ylim = c(0, 1), main = "Comparacion SR diferentes métodos de compensación" ) lines(x = df$SR_coseno, type = "l", col = "blue", lwd = 2) # agregar otra linea. lines(x = df$SR_coseno_imp, type = "l", col = "green", lwd = 2) # agregar otra linea. legend( x = "topright", # posición de la leyenda legend = c("SR", "SR cos", "SR impcos"), # etiquetas col = c("red", "blue", "green"), # colores de la linea lwd = 2 # ancho de la linea ) ``` --- ### Comparación de reflectancias superficiales con los diferentes metodos. <center> <img src="data:image/png;base64,#reflectancias.PNG" alt="drawing" width="900"height="550"/> <center> --- ### BibliografÃa. Civco, D. L. (1989). Topographic normalization of Landsat Thematic Mapper digital imagery. Photogrammetric engineering and remote sensing, 55(9), 1303-1309. Allen, Tom. (2000). Topographic Normalization of Landsat Thematic Mapper Data in Three Mountain Environments. Geocarto International. 15. 10.1080/10106040008542148. Riaño, David & Chuvieco, Emilio & Salas, Javier & Aguado, Inmaculada. (2003). Assessment of different topographic corrections in Landsat-TM data for mapping vegetation types (2003). Geoscience and Remote Sensing, IEEE Transactions on. 41. 1056 - 1061. 10.1109/TGRS.2003.811693. Riaño, David & Chuvieco, Emilio & Salas, Javier & Aguado, Inmaculada. (2003). Assessment of different topographic corrections in Landsat-TM data for mapping vegetation types (2003). Geoscience and Remote Sensing, IEEE Transactions on. 41. 1056 - 1061. 10.1109/TGRS.2003.811693. --- class: inverse middle 